<?php

namespace App\Util;

class Util {

	//获取jstree树形结构（分类）
    public function getTreeview($data,$pid=0,$arr)
    {
        $tree = array();
        foreach($data as $k => $v)
        {
            if($v['pid'] == $pid){
                $tmparr = array();
                $tmparr['id']=$v['id'];
                $addstr='';
                $editstr='';
                if($v['pid']>0){
                    $editstr=str_replace('$reeditstr',$v['id'],$arr['iseditstr']);
                }
                if($v['pid']<=1){
                     $addstr=str_replace('$readdstr',$v['id'],$arr['isaddstr']);
                }
                $tmparr['text']=$v['name'].'----------'.$addstr.$editstr.str_replace('$redelstr',$v['id'],$arr['isdelstr']);
                $tmparr['state']=array('opened'=>true);
                $tmparr['children'] =$this->getTreeview($data,$v['id'],$arr);
                $tree[] = $tmparr;
                unset($data[$k]);
           }
        }
        return $tree;
    }

    //文章列表页下拉
    public function getTypeTreeview($data,$pid=0,$tid=-1)
    {
        $tree = array();
        foreach($data as $k => $v)
        {
            if($v['pid'] == $pid){
                $tmparr = array();
                $tmparr['id']=$v['id'];
                $tmparr['text']=$v['name'];
                $tmparr['state']['opened']=true;
                if($v['pid']==0||$v['pid']==1){
                    $tmparr['state']['checkbox_disabled']=true;
                }
                if($v['id']==$tid){
                    $tmparr['state']['selected']=true;
                }
                $tmparr['children'] =$this->getTypeTreeview($data,$v['id'],$tid);
                $tree[] = $tmparr;
                unset($data[$k]);
           }
        }
        return $tree;
    }

    //php获取中文字符拼音首字母
    function getFirstCharter($str){
        if (ord($str)>128) { //汉字开头
            // $s1 = iconv("UTF-8","gb2312", $str);    
            // $s2 = iconv("gb2312","UTF-8", $s1);    
            // if($s2 == $str){$s = $s1;}  
            // else{$s = $str;} 
            $s=iconv("UTF-8","gb2312", $str); 
            $asc=ord($s{0})*256+ord($s{1})-65536; 
            if($asc>=-20319 and $asc<=-20284)return "A"; 
            if($asc>=-20283 and $asc<=-19776)return "B"; 
            if($asc>=-19775 and $asc<=-19219)return "C"; 
            if($asc>=-19218 and $asc<=-18711)return "D"; 
            if($asc>=-18710 and $asc<=-18527)return "E"; 
            if($asc>=-18526 and $asc<=-18240)return "F"; 
            if($asc>=-18239 and $asc<=-17923)return "G"; 
            if($asc>=-17922 and $asc<=-17418)return "H"; 
            if($asc>=-17417 and $asc<=-16475)return "J"; 
            if($asc>=-16474 and $asc<=-16213)return "K"; 
            if($asc>=-16212 and $asc<=-15641)return "L"; 
            if($asc>=-15640 and $asc<=-15166)return "M"; 
            if($asc>=-15165 and $asc<=-14923)return "N"; 
            if($asc>=-14922 and $asc<=-14915)return "O"; 
            if($asc>=-14914 and $asc<=-14631)return "P"; 
            if($asc>=-14630 and $asc<=-14150)return "Q"; 
            if($asc>=-14149 and $asc<=-14091)return "R"; 
            if($asc>=-14090 and $asc<=-13319)return "S"; 
            if($asc>=-13318 and $asc<=-12839)return "T"; 
            if($asc>=-12838 and $asc<=-12557)return "W"; 
            if($asc>=-12556 and $asc<=-11848)return "X"; 
            if($asc>=-11847 and $asc<=-11056)return "Y"; 
            if($asc>=-11055 and $asc<=-10247)return "Z"; 
            return false; 
        }else if(ord($str)>=48 and ord($str)<=57){ //数字开头
            return $letter=iconv_substr($str,0,1,'utf-8');
        }else if(ord($str)>=65 and ord($str)<=90){ //大写英文开头
            return $letter=iconv_substr($str,0,1,'utf-8');
        }else if(ord($str)>=97 and ord($str)<=122){ //小写英文开头
            return $letter=iconv_substr($str,0,1,'utf-8');
        }
        $asc=ord(substr($str,0,1));
        if ($asc<160) //非中文
        {
            if ($asc>=48 && $asc<=57){
                return chr($asc); //数字
            }elseif ($asc>=65 && $asc<=90){
                return chr($asc); // A--Z
            }elseif ($asc>=97 && $asc<=122){
                return chr($asc-32); // a--z
            }else{
                return '~'; //其他
            }
        }
        else //中文
        {
            $asc=$asc*1000+ord(substr($str,1,1));
            //获取拼音首字母A--Z
            if ($asc>=176161 && $asc<176197){
            return 'A';
            }elseif ($asc>=176197 && $asc<178193){
            return 'B';
            }elseif ($asc>=178193 && $asc<180238){
            return 'C';
            }elseif ($asc>=180238 && $asc<182234){
            return 'D';
            }elseif ($asc>=182234 && $asc<183162){
            return 'E';
            }elseif ($asc>=183162 && $asc<184193){
            return 'F';
            }elseif ($asc>=184193 && $asc<185254){
            return 'G';
            }elseif ($asc>=185254 && $asc<187247){
            return 'H';
            }elseif ($asc>=187247 && $asc<191166){
            return 'J';
            }elseif ($asc>=191166 && $asc<192172){
            return 'K';
            }elseif ($asc>=192172 && $asc<194232){
            return 'L';
            }elseif ($asc>=194232 && $asc<196195){
            return 'M';
            }elseif ($asc>=196195 && $asc<197182){
            return 'N';
            }elseif ($asc>=197182 && $asc<197190){
            return 'O';
            }elseif ($asc>=197190 && $asc<198218){
            return 'P';
            }elseif ($asc>=198218 && $asc<200187){
            return 'Q';
            }elseif ($asc>=200187 && $asc<200246){
            return 'R';
            }elseif ($asc>=200246 && $asc<203250){
            return 'S';
            }elseif ($asc>=203250 && $asc<205218){
            return 'T';
            }elseif ($asc>=205218 && $asc<206244){
            return 'W';
            }elseif ($asc>=206244 && $asc<209185){
            return 'X';
            }elseif ($asc>=209185 && $asc<212209){
            return 'Y';
            }elseif ($asc>=212209){
            return 'Z';
            }else{
            return '~';
            }
        }
    }

}
